-
-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run tests in parallel, one per framework #354
base: master
Are you sure you want to change the base?
Conversation
Now that tests run on three frameworks (net461, net6.0, net8.0), we can save a lot of build time by running each framework's tests in parallel.
Some cases of Platform.IsMono are workarounds for bugs in older versions of mono. Those can probably be removed, but for safety's sake, we'll leave them alone for now. Other cases are clearly trying to check the platform, to run Linux-only or Windows-only code. Those cases should be replaced by Platform.IsUnix or Platform.IsWindows as appropriate, because nearly everywhere that Chorus is being run on Linux these days, it's running under dotnet rather than mono, and the Platform.IsMono check returns false.
Test Results 8 files + 4 416 suites +4 2h 45m 57s ⏱️ +11s Results for commit e857fae. ± Comparison against base commit a6a7041. This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Okay, now the tests are passing but the
I'll investigate why |
Looks like this might be running into dotnet/sdk#29742 where running |
If running with `--no-build`, then `dotnet test` complains about DLLs being invalid arguments, resulting in an exit code of 1 even if all tests passed. This then makes GHA think the build was a failure. The discussion in the dotnet SDK issue suggests removing `--no-build` as one possible workaround for this issue.
Otherwise we get errors about the dotnet restore not being done for the right framework.
Also, forgot to specify target framework on Windows; no wonder it was taking so much longer!
Talked about this with Robin, the issue is that Chorus.Tests only run against net461, so when we say As for the |
Since ChorusMerge runs on net461;net6.0;net8.0, the ChorusMerge tests should be run on all the same frameworks.
Also only run Chorus.Tests on net461, since it's not defined for net6.0 and net8.0.
Turns out we don't actually need the test filter to be different between Linux and Windows anymore, since we're skipping running net461 tests on Linux, and all the tests that needed the filter are net461 (and not likely to change since they use Windows Forms). So I chose to keep it simple and not have any filter differences (and just skip the SkipOnBuildServer tests everywhere). |
nice work, though it looks like the Build Windows installers job is now failing. Also it looks like no tests are actually running for net461, so I'm going to look into that |
Now that tests run on three frameworks (net461, net6.0, net8.0), we can save a lot of build time by running each framework's tests in parallel.
This change is